using System.Drawing;
namespace Lifter.Gui.Monitor.Contain
{
    internal class ColorScheme
    {
        private EnmColorScheme oClrScheme;
        public ColorScheme(EnmColorScheme aoColorScheme)
        {
            this.oClrScheme = aoColorScheme;
        }
        public void SetColorScheme(IGradientButtonColor aCtrl)
        {
            switch (this.oClrScheme)
            {
                case EnmColorScheme.Purple:
                    aCtrl.BackgroundBottomColor = Color.FromArgb(183, 157, 206);
                    aCtrl.BackgroundTopColor = Color.FromArgb(231, 222, 239);
                    aCtrl.BorderBottomColor = Color.FromArgb(224, 215, 233);
                    aCtrl.BorderTopColor = Color.FromArgb(193, 157, 206);
                    aCtrl.DefaultBorderColor = Color.FromArgb(132, 100, 161);
                    aCtrl.DisabledFontColor = Color.FromArgb(143, 116, 156);
                    aCtrl.DisbaledBottomColor = Color.FromArgb(209, 192, 210);
                    aCtrl.DisabledTopColor = Color.FromArgb(237, 231, 230);
                    aCtrl.FontColor = Color.FromArgb(74, 30, 115);
                    aCtrl.PressedFontColor = Color.Black;
                    break;
                case EnmColorScheme.Green:
                    aCtrl.BackgroundBottomColor = Color.FromArgb(193, 201, 140);
                    aCtrl.BackgroundTopColor = Color.FromArgb(230, 233, 208);
                    aCtrl.BorderBottomColor = Color.FromArgb(230, 233, 208);
                    aCtrl.BorderTopColor = Color.FromArgb(193, 201, 140);
                    aCtrl.DefaultBorderColor = Color.FromArgb(167, 168, 127);
                    aCtrl.DisabledFontColor = Color.FromArgb(156, 147, 113);
                    aCtrl.DisbaledBottomColor = Color.FromArgb(209, 215, 170);
                    aCtrl.DisabledTopColor = Color.FromArgb(240, 242, 227);
                    aCtrl.FontColor = Color.FromArgb(105, 110, 26);
                    aCtrl.PressedFontColor = Color.Black;
                    break;
                case EnmColorScheme.Yellow:
                    aCtrl.BackgroundBottomColor = Color.FromArgb(193, 201, 255);
                    aCtrl.BackgroundTopColor = Color.FromArgb(230, 233, 255);
                    aCtrl.BorderBottomColor = Color.FromArgb(230, 233, 255);
                    aCtrl.BorderTopColor = Color.FromArgb(193, 201, 255);
                    aCtrl.DefaultBorderColor = Color.FromArgb(167, 168, 255);
                    aCtrl.DisabledFontColor = Color.FromArgb(156, 147, 255);
                    aCtrl.DisbaledBottomColor = Color.FromArgb(209, 215, 255);
                    aCtrl.DisabledTopColor = Color.FromArgb(240, 242, 255);
                    aCtrl.FontColor = Color.FromArgb(105, 110, 255);
                    aCtrl.PressedFontColor = Color.Black;
                    break;
                case EnmColorScheme.Blue:
                    aCtrl.BackgroundBottomColor = Color.FromArgb(183, 255, 206);
                    aCtrl.BackgroundTopColor = Color.FromArgb(231, 255, 239);
                    aCtrl.BorderBottomColor = Color.FromArgb(224, 255, 233);
                    aCtrl.BorderTopColor = Color.FromArgb(193, 255, 206);
                    aCtrl.DefaultBorderColor = Color.FromArgb(132, 255, 161);
                    aCtrl.DisabledFontColor = Color.FromArgb(143, 255, 156);
                    aCtrl.DisbaledBottomColor = Color.FromArgb(209, 255, 210);
                    aCtrl.DisabledTopColor = Color.FromArgb(237, 255, 230);
                    aCtrl.FontColor = Color.FromArgb(74, 255, 115);
                    aCtrl.PressedFontColor = Color.Black;
                    break;
            }
        }
        public void SetColorScheme(IGradientContainer aCtrl)
        {
            switch (this.oClrScheme)
            {
                case EnmColorScheme.Purple:
                    aCtrl.FontColor = Color.FromArgb(137, 101, 163);
                    aCtrl.ShadowColor = Color.FromArgb(110, 92, 121);
                    aCtrl.BorderTopColor = Color.FromArgb(234, 218, 245);
                    aCtrl.BorderBottomColor = Color.FromArgb(191, 161, 211);
                    aCtrl.BackgroundTopColor = Color.FromArgb(251, 246, 255);
                    aCtrl.BackgroundBottomColor = Color.FromArgb(241, 229, 249);
                    break;
                case EnmColorScheme.Green:
                    aCtrl.FontColor = Color.FromArgb(57, 66, 1);
                    aCtrl.ShadowColor = Color.FromArgb(142, 143, 116);
                    aCtrl.BorderTopColor = Color.FromArgb(225, 225, 183);
                    aCtrl.BorderBottomColor = Color.FromArgb(167, 168, 127);
                    aCtrl.BackgroundTopColor = Color.FromArgb(245, 243, 219);
                    aCtrl.BackgroundBottomColor = Color.FromArgb(214, 209, 153);
                    break;
                case EnmColorScheme.Yellow:
                    aCtrl.FontColor = Color.FromArgb(57, 66, 255);
                    aCtrl.ShadowColor = Color.FromArgb(142, 143, 255);
                    aCtrl.BorderTopColor = Color.FromArgb(225, 225, 255);
                    aCtrl.BorderBottomColor = Color.FromArgb(167, 168, 255);
                    aCtrl.BackgroundTopColor = Color.FromArgb(245, 243, 255);
                    aCtrl.BackgroundBottomColor = Color.FromArgb(214, 209, 255);
                    break;
                case EnmColorScheme.Blue:
                    aCtrl.FontColor = Color.FromArgb(137, 255, 163);
                    aCtrl.ShadowColor = Color.FromArgb(110, 255, 121);
                    aCtrl.BorderTopColor = Color.FromArgb(234, 255, 245);
                    aCtrl.BorderBottomColor = Color.FromArgb(191, 255, 211);
                    aCtrl.BackgroundTopColor = Color.FromArgb(251, 255, 255);
                    aCtrl.BackgroundBottomColor = Color.FromArgb(241, 255, 249);
                    break;
                case EnmColorScheme.Test:
                    aCtrl.FontColor = Color.White;
                    aCtrl.ShadowColor = Color.Gainsboro;
                    aCtrl.BorderTopColor = Color.SteelBlue;
                    aCtrl.BorderBottomColor = Color.LightSteelBlue;
                    aCtrl.BackgroundTopColor = Color.SteelBlue;
                    aCtrl.BackgroundBottomColor = Color.LightSteelBlue;
                    break;
                default:
                    throw new InvalidColorSchemeException();
            }
        }
    }
}
